package com.jeeplus.modules.guide.mapper;

import com.jeeplus.modules.guide.entity.*;
import com.jeeplus.modules.guide.model.domain.BusinessInfo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 *
 */
@Mapper
@Repository
public interface MobileMatterMapper {
    /**
     * 批量添加事项
     * insertMatterList
     * @return 受影响的行数
     */
    void insertMatterList(@Param("version")String version ,@Param("list")List<MobileMatter> list);

    /**
     * 批量添加事项可办地址
     * insertMatterAddress
     * @return 受影响的行数
     */
    void insertMatterAddress(List<MobileMatterAddress> list, String version);

    /**
     * 事项数量查询
     * findMatterValueCount
     * @return 受影响的行数
     */
    int findMatterValueCount(String version);


    /**
     * 事项点位数量查询
     * findMatterValueCount
     * @return 受影响的行数
     */
    int findMatterAddressCount(String version);
    /**
     * 获取事项集合
     * getMatterList
     * @return 受影响的行数
     */

    List<MobileMatter> getMatterList(Map<String,Object> map);


    /**
     * 获取所有除长者事项集合
     * getMatterList
     * @return 受影响的行数
     */

    List<MobileAllMatter> getOutMatterENList(Map<String,Object> map);

    /**
     * 获取热门事项
     * getMatterTop
     * @return 受影响的行数
     */
    Map<String,Object> getMatterTop(@Param("oid")String oid);

    /**
     * 配置热门事项
     * editMatterTop
     * @return 受影响的行数
     */
    void editMatterTop(@Param("oid")String oid,@Param("sort")int sort,@Param("isTop")String isTop);


    /**
     * 添加热门事项
     * editMatterTop
     * @return 受影响的行数
     */
    void insertMatterTop(@Param("oid")String oid,@Param("sort")int sort,@Param("isTop")String isTop);

    /**
     * 删除业务绑定事项
     * deleteMatter
     * @return 受影响的行数
     */
    void deleteMatter(@Param("typeId")String typeId,@Param("ids")String ids,@Param("areaId")String areaId,@Param("type")int type);

    /**
     * 添加业务绑定事项
     * insertMatterType
     * @return 受影响的行数
     */
    void insertMatterType(List<MobileMatterType> list);

    /**
     * 查看业务预约时间配置
     * getBusinessDay
     * @return 受影响的行数
     */
    List<Map<String,Object>> getBusinessDay(@Param("typeId")String typeId,@Param("areaId")String areaId);

    /**
     * 查看业务绑定事项
     * getBusinessMatter
     * @return 受影响的行数
     */
    List<Map<String,Object>> getBusinessMatter(@Param("typeId")String typeId,@Param("areaId")String areaId,@Param("version")String version,@Param("type")int type);

    /**
     * 查看业务绑定事项
     * getBusinessMatter
     * @return 受影响的行数
     */
    List<Map<String,Object>> getThingMatter(@Param("typeId")String typeId,@Param("areaId")String areaId,@Param("type")int type);

    /**
     * 事项标签添加
     * insertMatterLabel
     * @return 受影响的行数
     */
    void insertMatterLabel(@Param("id")String id,@Param("oid")String oid,@Param("matterName")String matterName,@Param("label")String label);



    /**
     * 获取热门事项 top5
     * getMatterTopList
     * @return 受影响的行数
     */
    List<Map<String,Object>> getMatterTopList(@Param("version")String version);

    /**
     * 事项搜索
     * findMatterList
     * @return 受影响的行数
     */
    Map<String,Object> findMatterList(@Param("label")String label,@Param("version")String version);

    /**
     * 事项详情
     * getMatterBSZN
     * @return 受影响的行数
     */
    Map<String,Object> getMatterBSZN(@Param("oid")String oid,@Param("version")String version);

    /**
     * 业务预约时间人数配置
     * insertMatterDay
     * @return 受影响的行数
     */
    void insertBusinessDay(String typeId,String areaId,List<MobileBusinessDay> list);

    /**
     * 更新预约时间人数配置
     * updateBusinessDay
     * @return 受影响的行数int
     */
    void updateBusinessDay(String typeId,String areaId,int timeData,int numData);


    /**
     * 获取事项材料
     * getMatterMaterialList
     * @return 受影响的行数
     */
    List<Map<String,Object>> getMatterMaterialList (@Param("oid")String oid,@Param("version")String version);

    /**
     * 获取事项办理状态
     * getMatterType
     * @return 受影响的行数
     */
    List<String> getMatterType (@Param("oid")String oid,@Param("version")String version);

    /**
     * 获取业务id
     *
     * @param matterId
     * @param areaId
     * @return
     */
    List<BusinessInfo> selectBusinessIdByMatterId(@Param("matterId") String matterId, @Param("areaId") List<String> areaId);


    /**
     * 情况情形话
     * delThing
     * @return
     */
    void delThing();

    /**
     * 添加最新情形话
     * InsertOneThing
     * @return
     */
    void InsertOneThing(List<MobileThing> list);
    /**
     * 添加第三方街道网上办办件状态数据
     * intoStreetValue
     * @returnid
     */
    int intoStreetValue(String id, String areaName, String status, int code, int areaType, String title, String startTime,String wxId, String tell);

    /**
     * 更新第三方街道网上办办件状态数据
     * updateStreetValue
     * @returnid
     */
    int updateStreetValue(String status, int code, String updateTime, String id, int areaType);

    /**
     * 查询第三方街道网上办办件状态数据是否已有记录
     * findStreetValue
     * @returnid
     */
    String findStreetValue(String id, int areaType);

    Integer isDoTime();
    void intoStreetValueOther(MobileStreet ms);
    List<MobileStreet> findStreetValueStart(String userid);
    List<MobileStreet> findStreetValueEnd(String userid);
    void deleteStreetValueOther(String snid);
    String getWSAreaIdAndTypeId(String oid);
    List<String> findAreaIdByOid(String oid,List<String> list);
    /**
     * 通过身份证号获取微信id
     * @param idcard 身份证号
     * @return 业务名称
     */
    String findWXIdByIdcard(String idcard);
}
